Skip to content

DRAFT: Add an aarch64-msvc build running on ARM64 Windows #140136

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

dpaoliello
Copy link
Contributor

@dpaoliello dpaoliello commented Apr 21, 2025

Resurrecting #126341

r? @Kobzol

try-job: *aarch64-msvc*

@rustbot rustbot added A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. labels Apr 21, 2025
@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@bors
Copy link
Collaborator

bors commented Apr 23, 2025

☔ The latest upstream changes (presumably #138591) made this pull request unmergeable. Please resolve the merge conflicts.

@dpaoliello dpaoliello force-pushed the arm64winci branch 2 times, most recently from b26ede0 to 6677d07 Compare April 23, 2025 17:09
@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rustbot rustbot added the PG-exploit-mitigations Project group: Exploit mitigations label Apr 25, 2025
@rust-log-analyzer

This comment has been minimized.

@dpaoliello dpaoliello force-pushed the arm64winci branch 2 times, most recently from d729d12 to 4f5a07f Compare April 28, 2025 19:54
@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@bors
Copy link
Collaborator

bors commented May 6, 2025

⌛ Trying commit 0d8065d with merge b41c332...

@bors
Copy link
Collaborator

bors commented May 6, 2025

☀️ Try build successful - checks-actions
Build commit: b41c332 (b41c3329776d7482c1902fc06adc55360bf14ca4)

@ZuseZ4
Copy link
Member

ZuseZ4 commented May 6, 2025

@bors try
(to see caching effects)

@bors
Copy link
Collaborator

bors commented May 6, 2025

⌛ Trying commit 0d8065d with merge c886c51...

bors added a commit to rust-lang-ci/rust that referenced this pull request May 6, 2025
DRAFT: Add an aarch64-msvc build running on ARM64 Windows

Resurrecting rust-lang#126341

r? `@Kobzol`

try-job: `*aarch64-msvc*`
@bors
Copy link
Collaborator

bors commented May 7, 2025

☀️ Try build successful - checks-actions
Build commit: c886c51 (c886c51e4fee6b033b6567847fb6d9bc0a55baf9)

@Kobzol
Copy link
Contributor

Kobzol commented May 7, 2025

Seems like it is working now, good job! There are a bunch of unrelated changes, and adding the builder will also require an MCP.

@dpaoliello
Copy link
Contributor Author

Seems like it is working now, good job! There are a bunch of unrelated changes, and adding the builder will also require an MCP.

Thanks!

I've carved out the various test fixes, bumping LLVM and other cleanups into their own PRs. Once those are merged, I'll file the MCP for this.

Zalathar added a commit to Zalathar/rust that referenced this pull request May 8, 2025
…eyouxu

[win][arm64] Disable various DebugInfo tests that don't work on Arm64 Windows

While trying to get the aarch64-msvc build working correctly (rust-lang#140136), various DebugInfo related tests were failing.

I've added comments to each test to indicate why it is disabled and linked to appropriate bugs.

* `tests/debuginfo/step-into-match.rs`: Stepping at the end of a function on goes to the callsite, not the instruction after it.
* `tests/debuginfo/type-names.rs`: Arm64 Windows cdb doesn't support JavaScript extensions. Followed up with the Microsoft Debugger Tools team to fix this.
* `tests/ui/runtime/backtrace-debuginfo.rs`: Backtraces are truncated due to rust-lang#140489
Zalathar added a commit to Zalathar/rust that referenced this pull request May 8, 2025
[arm64] Pointer auth test should link with C static library statically

While trying to get the aarch64-msvc build working correctly (rust-lang#140136), the `pointer-auth-link-with-c` test was failing.

The pointer auth test builds its C library statically:
https://github.com/rust-lang/rust/blob/3ef8e64ce9f72ee8d600d55bc43b36eed069b252/tests/run-make/pointer-auth-link-with-c/rmake.rs#L15

However, the Rust code did not indicate the link kind, so it defaulted to dynamic which then fails on Windows.
Zalathar added a commit to Zalathar/rust that referenced this pull request May 8, 2025
[win][arm64] Disable MSVC Linker 'Arm Hazard' warning

While trying to get the aarch64-msvc build working correctly (rust-lang#140136), I observed the following test failure:

From <rust-lang#140136 (comment)>

```
  = note: main.main.d17f5fbe6225cf88-cgu.0.rcgu.o : fatal error LNK1322: cannot avoid potential ARM hazard (Cortex-A53 MPCore processor bug #843419) in section 0x57; please consider using compiler option /Gy if it was not used
```

This is warning of a code sequence that triggers a bug in Cortex-A53 processors: <https://developer.arm.com/documentation/epm048406/latest>

However, since Windows 10 isn't supported on the Cortex-A53, this warning is not required, so it can be suppressed using the undocumented `/arm64hazardfree` flag.
Zalathar added a commit to Zalathar/rust that referenced this pull request May 8, 2025
[win][arm64] Disable std::fs tests that require symlinks

While trying to get the aarch64-msvc build working correctly (rust-lang#140136), various tests in `std::fs` were failing as the Arm64 Windows runner image we are using does not have Developer Mode enabled, thus it cannot create symlinks.

I've [filed a request to get Developer Mode enabled](actions/partner-runner-images#94), but in the meantime I've disabled the relevant tests on Arm64 Windows.
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request May 8, 2025
…eyouxu

[win][arm64] Disable various DebugInfo tests that don't work on Arm64 Windows

While trying to get the aarch64-msvc build working correctly (rust-lang#140136), various DebugInfo related tests were failing.

I've added comments to each test to indicate why it is disabled and linked to appropriate bugs.

* `tests/debuginfo/step-into-match.rs`: Stepping at the end of a function on goes to the callsite, not the instruction after it.
* `tests/debuginfo/type-names.rs`: Arm64 Windows cdb doesn't support JavaScript extensions. Followed up with the Microsoft Debugger Tools team to fix this.
* `tests/ui/runtime/backtrace-debuginfo.rs`: Backtraces are truncated due to rust-lang#140489
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request May 8, 2025
[arm64] Pointer auth test should link with C static library statically

While trying to get the aarch64-msvc build working correctly (rust-lang#140136), the `pointer-auth-link-with-c` test was failing.

The pointer auth test builds its C library statically:
https://github.com/rust-lang/rust/blob/3ef8e64ce9f72ee8d600d55bc43b36eed069b252/tests/run-make/pointer-auth-link-with-c/rmake.rs#L15

However, the Rust code did not indicate the link kind, so it defaulted to dynamic which then fails on Windows.
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request May 8, 2025
[win][arm64] Disable MSVC Linker 'Arm Hazard' warning

While trying to get the aarch64-msvc build working correctly (rust-lang#140136), I observed the following test failure:

From <rust-lang#140136 (comment)>

```
  = note: main.main.d17f5fbe6225cf88-cgu.0.rcgu.o : fatal error LNK1322: cannot avoid potential ARM hazard (Cortex-A53 MPCore processor bug #843419) in section 0x57; please consider using compiler option /Gy if it was not used
```

This is warning of a code sequence that triggers a bug in Cortex-A53 processors: <https://developer.arm.com/documentation/epm048406/latest>

However, since Windows 10 isn't supported on the Cortex-A53, this warning is not required, so it can be suppressed using the undocumented `/arm64hazardfree` flag.
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request May 8, 2025
[win][arm64] Disable std::fs tests that require symlinks

While trying to get the aarch64-msvc build working correctly (rust-lang#140136), various tests in `std::fs` were failing as the Arm64 Windows runner image we are using does not have Developer Mode enabled, thus it cannot create symlinks.

I've [filed a request to get Developer Mode enabled](actions/partner-runner-images#94), but in the meantime I've disabled the relevant tests on Arm64 Windows.
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request May 8, 2025
…eyouxu

[win][arm64] Disable various DebugInfo tests that don't work on Arm64 Windows

While trying to get the aarch64-msvc build working correctly (rust-lang#140136), various DebugInfo related tests were failing.

I've added comments to each test to indicate why it is disabled and linked to appropriate bugs.

* `tests/debuginfo/step-into-match.rs`: Stepping at the end of a function on goes to the callsite, not the instruction after it.
* `tests/debuginfo/type-names.rs`: Arm64 Windows cdb doesn't support JavaScript extensions. Followed up with the Microsoft Debugger Tools team to fix this.
* `tests/ui/runtime/backtrace-debuginfo.rs`: Backtraces are truncated due to rust-lang#140489
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request May 8, 2025
[arm64] Pointer auth test should link with C static library statically

While trying to get the aarch64-msvc build working correctly (rust-lang#140136), the `pointer-auth-link-with-c` test was failing.

The pointer auth test builds its C library statically:
https://github.com/rust-lang/rust/blob/3ef8e64ce9f72ee8d600d55bc43b36eed069b252/tests/run-make/pointer-auth-link-with-c/rmake.rs#L15

However, the Rust code did not indicate the link kind, so it defaulted to dynamic which then fails on Windows.
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request May 8, 2025
[win][arm64] Disable MSVC Linker 'Arm Hazard' warning

While trying to get the aarch64-msvc build working correctly (rust-lang#140136), I observed the following test failure:

From <rust-lang#140136 (comment)>

```
  = note: main.main.d17f5fbe6225cf88-cgu.0.rcgu.o : fatal error LNK1322: cannot avoid potential ARM hazard (Cortex-A53 MPCore processor bug #843419) in section 0x57; please consider using compiler option /Gy if it was not used
```

This is warning of a code sequence that triggers a bug in Cortex-A53 processors: <https://developer.arm.com/documentation/epm048406/latest>

However, since Windows 10 isn't supported on the Cortex-A53, this warning is not required, so it can be suppressed using the undocumented `/arm64hazardfree` flag.
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request May 8, 2025
[win][arm64] Disable std::fs tests that require symlinks

While trying to get the aarch64-msvc build working correctly (rust-lang#140136), various tests in `std::fs` were failing as the Arm64 Windows runner image we are using does not have Developer Mode enabled, thus it cannot create symlinks.

I've [filed a request to get Developer Mode enabled](actions/partner-runner-images#94), but in the meantime I've disabled the relevant tests on Arm64 Windows.
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request May 8, 2025
Rollup merge of rust-lang#140759 - dpaoliello:symlink, r=workingjubilee

[win][arm64] Disable std::fs tests that require symlinks

While trying to get the aarch64-msvc build working correctly (rust-lang#140136), various tests in `std::fs` were failing as the Arm64 Windows runner image we are using does not have Developer Mode enabled, thus it cannot create symlinks.

I've [filed a request to get Developer Mode enabled](actions/partner-runner-images#94), but in the meantime I've disabled the relevant tests on Arm64 Windows.
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request May 8, 2025
Rollup merge of rust-lang#140758 - dpaoliello:armhazard, r=jieyouxu

[win][arm64] Disable MSVC Linker 'Arm Hazard' warning

While trying to get the aarch64-msvc build working correctly (rust-lang#140136), I observed the following test failure:

From <rust-lang#140136 (comment)>

```
  = note: main.main.d17f5fbe6225cf88-cgu.0.rcgu.o : fatal error LNK1322: cannot avoid potential ARM hazard (Cortex-A53 MPCore processor bug #843419) in section 0x57; please consider using compiler option /Gy if it was not used
```

This is warning of a code sequence that triggers a bug in Cortex-A53 processors: <https://developer.arm.com/documentation/epm048406/latest>

However, since Windows 10 isn't supported on the Cortex-A53, this warning is not required, so it can be suppressed using the undocumented `/arm64hazardfree` flag.
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request May 8, 2025
Rollup merge of rust-lang#140756 - dpaoliello:paclink, r=jieyouxu

[arm64] Pointer auth test should link with C static library statically

While trying to get the aarch64-msvc build working correctly (rust-lang#140136), the `pointer-auth-link-with-c` test was failing.

The pointer auth test builds its C library statically:
https://github.com/rust-lang/rust/blob/3ef8e64ce9f72ee8d600d55bc43b36eed069b252/tests/run-make/pointer-auth-link-with-c/rmake.rs#L15

However, the Rust code did not indicate the link kind, so it defaulted to dynamic which then fails on Windows.
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request May 8, 2025
Rollup merge of rust-lang#140755 - dpaoliello:arm64windebuginfo, r=jieyouxu

[win][arm64] Disable various DebugInfo tests that don't work on Arm64 Windows

While trying to get the aarch64-msvc build working correctly (rust-lang#140136), various DebugInfo related tests were failing.

I've added comments to each test to indicate why it is disabled and linked to appropriate bugs.

* `tests/debuginfo/step-into-match.rs`: Stepping at the end of a function on goes to the callsite, not the instruction after it.
* `tests/debuginfo/type-names.rs`: Arm64 Windows cdb doesn't support JavaScript extensions. Followed up with the Microsoft Debugger Tools team to fix this.
* `tests/ui/runtime/backtrace-debuginfo.rs`: Backtraces are truncated due to rust-lang#140489
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-compiletest Area: The compiletest test runner A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc PG-exploit-mitigations Project group: Exploit mitigations S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants